﻿#pragma once
#include "zyBase.h"



namespace BlackMoonUI {

	class zyMenu
	{
	public:
		zyMenu() {
			m_hMenu = 0;
		}

		BOOL 创建菜单栏();
		BOOL 创建弹出菜单();
		BOOL 绑定系统菜单(HWND  参数_窗口句柄);
		void 重置系统菜单(HWND  参数_窗口句柄);
		void 销毁();
		void _DeleteBitmaps(HMENU  hMenu);
		HMENU 取菜单句柄();
		BOOL 置菜单句柄(HMENU  参数_菜单句柄);
		BOOL 添加弹出菜单(zyMenu& 参数_菜单条, const wchar_t* 参数_菜单名);
		BOOL 插入弹出菜单(zyMenu& 参数_菜单条, const wchar_t* 参数_菜单名, int  参数_索引 = -1);
		BOOL 置窗口(HWND  参数_窗口句柄);
		BOOL 置菜单背景色(int  参数_颜色值, BOOL  参数_应用于所有子菜单 = true);
		BOOL 置菜单背景图(Bitmap 参数_图片, int  参数_图片背景色 = 0, BOOL  参数_应用于所有子菜单 = true);
		zyMenu 取子菜单(int  参数_索引);
		int 取项目ID(int  参数_索引);
		BOOL 添加项目(const wchar_t* 参数_菜单名, int  参数_菜单ID);
		BOOL 添加分割线();
		BOOL 插入项目(const wchar_t* 参数_菜单名, int  参数_索引, int  参数_菜单ID);
		BOOL 插入分割线(int  参数_索引);
		BOOL 单选菜单(int  参数_索引, int  参数_分组起始索引, int  参数_分组结束索引);
		int 弹出菜单(int  参数_X, int  参数_Y, HWND  参数_窗口句柄, int  参数_标志 = 0);
		const wchar_t* 取项目标题(int  参数_菜单ID, BOOL  参数_使用索引 = false);
		int 取项目风格(int  参数_菜单ID或索引, BOOL  参数_使用索引 = false);
		RECT 取项目矩形(HWND  参数_窗口句柄, int  参数_菜单索引);
		INT_PTR 取项目数值(int  参数_菜单ID或索引, BOOL  参数_使用索引 = false);
		int 取项目数();
		int 取项目状态(int  参数_菜单ID, BOOL  参数_使用索引 = false);
		int 取默认项目(int  参数_标志 = 0, BOOL  参数_使用索引 = false);
		int 取坐标项目(HWND  参数_窗口句柄, int  参数_横坐标, int  参数_纵坐标);
		BOOL 取项目图标(int  参数_菜单ID或索引, Bitmap 参数_位图, BOOL  参数_使用索引 = false);
		BOOL 取项目图标选中(int  参数_菜单ID或索引, Bitmap 参数_未选中位图, Bitmap 参数_已选中位图, BOOL  参数_使用索引 = false);
		BOOL 删除项目(int 参数_菜单ID或索引, BOOL 参数_使用索引 = false);
		int 选中项目(int  参数_菜单ID或索引, BOOL  参数_是否选中, BOOL  参数_使用索引 = false);
		BOOL 是否选中(int  参数_菜单ID或索引, BOOL  参数_使用索引 = false);
		BOOL 置项目ID(int  参数_菜单ID或索引, int  参数_新菜单ID, BOOL  参数_使用索引 = false);
		BOOL 置项目标题(int  参数_菜单ID或索引, const wchar_t* 参数_菜单标题, BOOL  参数_使用索引 = false);
		BOOL 置项目风格(int  参数_菜单ID或索引, int  参数_风格, BOOL  参数_使用索引 = false);
		BOOL 载入RC资源(int  参数_菜单栏资源ID);
		BOOL 置项目数值(int  参数_菜单ID或索引, int  参数_菜单数值, BOOL  参数_使用索引 = false);
		BOOL 置项目图标(int  参数_菜单ID或索引, Bitmap 参数_图标, BOOL  参数_使用索引 = false);
		BOOL 置项目图标选中(int  参数_菜单ID或索引, Bitmap 参数_未选中图标, Bitmap 参数_已选中图标, BOOL  参数_使用索引 = false);
		BOOL 置项目状态(int  参数_菜单ID或索引, int  参数_菜单状态, BOOL  参数_使用索引 = false);
		BOOL 置默认项目(int  参数_菜单ID或索引, BOOL  参数_使用索引 = false);
	private:
		HMENU m_hMenu;
	};

}
